Electronic Messaging Systems

ABSTRACT

A computer system for facilitating communications between users that, in various embodiments, is configured for: (A) receiving, from a first user, one or more user watch area attributes; (B) using the one or more user watch area attributes to define a watch area; (C) receiving, from a second user, a message associated with a particular geographical location, wherein the second user has indicated that the message should be associated with the particular geographical location; (D) determining whether the particular geographical location is located within the user watch area; and (E) at least partially in response to determining that the particular geographical location is located within the user watch area, subscribing the first user to a thread of messages that includes the message.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of U.S. application Ser. No.13/253,174 entitled “Electronic Messaging Systems” filed Oct. 5, 2011,which claimed the benefit of U.S. Provisional Patent Application No.61/390,179 entitled “Electronic Messaging Systems” filed Oct. 5, 2010,which are hereby incorporated herein in their entirety.

BACKGROUND

Current messaging systems, such as Facebook and e-mail messagingsystems, are focused on facilitating communication between users thatknow each other. For example, Facebook allows users to quickly sendpersonal updates to multiple individuals who have been added to theuser's list of “friends” over time.

In certain situations, it would be desirable to communicate messages torecipients on the basis of the recipients' interest in a particularlocation rather than the recipients' preexisting relationship with thesender of the message. This would allow users who have an interest in acommon geographical area, but who do not necessarily know each other, toshare information regarding the area. Various electronic messagingsystems described below provide such functionality.

SUMMARY

In various embodiments, a computer system for facilitatingcommunications between users is configured for: (A) receiving, from afirst user, one or more user watch area attributes; (B) using the one ormore user watch area attributes to define a watch area; (C) receiving,from a second user, a message associated with a particular geographicallocation, wherein the second user has indicated that the message shouldbe associated with the particular geographical location; (D) determiningwhether the particular geographical location is located within the userwatch area; and (E) at least partially in response to determining thatthe particular geographical location is located within the user watcharea, subscribing the first user to a thread of messages that includesthe message.

In various embodiments, a computer system for facilitatingcommunications between users is configured for: (A) receiving, from afirst user, one or more first user watch area attributes; (B) using theone or more first user watch area attributes to define a first watcharea; (C) receiving, from a second user, one or more second user watcharea attributes; (D) using the one or more second user watch areaattributes to define a second watch area; (E) at a first particulartime, receiving, from a third user, a first message within a particularmessage thread, the first message being associated with a firstgeographical location; (F) determining whether the first geographicallocation is located within the first user watch area; (G) at leastpartially in response to determining that the first geographicallocation is located within the first user watch area, transmitting themessage thread to the first user; (H) at a second particular timeoccurring after the first particular time, receiving, from the firstuser, a second message within the message thread, the second messagebeing associated with a second geographical location; (I) determiningwhether the second geographical location is located within the seconduser watch area; and (J) at least partially in response to determiningthat the second geographical location is located within the second userwatch area, transmitting the message thread to the second user.

BRIEF DESCRIPTION OF THE DRAWINGS

During the course of the discussion below, reference will be made to theaccompanying drawings, which are not necessarily drawn to scale, andwherein:

FIGS. 1-4 are screen shots of a user client device within an electronicmessaging system according to a particular embodiment. FIG. 2 depicts ascreen shot that includes a list of message threads 130-132, and FIG. 3displays a screen shot that includes a particular message thread 132 andtwo particular messages 140, 141 within that thread.

FIGS. 5-9 are maps that demonstrate various aspects of the functionalityof an electronic messaging system according to a particular embodiment.

FIG. 10 is a block diagram of an electronic messaging system accordingto a particular embodiment.

FIG. 11 is a schematic diagram of a system server according to variousembodiments.

DETAILED DESCRIPTION OF VARIOUS EMBODIMENTS

Various embodiments now will be described more fully hereinafter withreference to the accompanying drawings. It should be understood that theinvention may be embodied in many different forms and should not beconstrued as limited to the embodiments set forth herein. Rather, theseembodiments are provided so that this disclosure will be thorough andcomplete, and will fully convey the scope of the invention to thoseskilled in the art. Like numbers refer to like elements throughout.

An electronic messaging system according to various embodimentscomprises: (1) one or more computer servers (referred to collectivelyherein as “the system server”); (2) one or more user client devices onwhich a user client software program is installed; and (3) one or morecommunications networks for facilitating communication between thesystem server and the system's various user client devices. Inparticular embodiments, the user client devices may include, forexample, a portable computing device (e.g., a laptop computer, a tabletcomputer, a cellular phone, or a GPS unit). User client devices may alsoinclude other types of computers, such as desktop computers.

In particular embodiments, the electronic messaging system is adaptedfor facilitating communication between a group of users by allowing eachof the users to post and receive messages on one or more user clientdevices. FIGS. 1-3 show exemplary displays of such a user client device.As may be understood, for example, from FIGS. 1-3, users may post amessage 140, 141 within a particular message thread 132 and associatethe message with a particular geographic location (e.g., by clicking onthe particular geographic location on a map 110 that is displayed on theuser's client device). The message is then delivered to any other usersthat are currently subscribed to the thread.

As shown in FIG. 1, in various embodiments, users may select and/ordefine a geographical zone of interest 125-128, which is referred tobelow as a user watch area. In particular embodiments, when a particularuser watch area is in place for a first user and a second user posts amessage and associates the message with a particular geographic location(a post location) within the particular user watch area, the messagingsystem automatically subscribes the first user to the message threadthat is associated with the second user's message. This allows the firstuser to read, and contribute new messages to, any threads of messagesthat are associated with the first user's watch area. As shown in FIG.1, in various embodiments, a user may read a particular message byselecting an icon 115 that indicates the particular location at whichthe message was posted.

The user watch area may be, for example: (1) a stationary watch area; or(2) a roaming watch area that is defined relative to the position of amovable object (e.g., a person or a particular user client device). Forexample, as discussed in greater detail below, a stationary user watcharea may be defined as a substantially circular geographical areahaving: (1) its center at a particular static location (e.g., the user'shome); and (2) a particular radius. Similarly, a roaming watch area maybe defined as a substantially circular geographical area having: (1) itscenter at the location of a particular user client device (e.g., asdefined by a GPS unit associated with the client device); and (2) aparticular radius. Such a roaming watch area may, for example, allow atraveling user to monitor and contribute to message threads that arerelevant to the user's immediate surroundings.

In particular embodiments, a user may define the shape of a particularuser watch area in any of a variety of different ways. For example, theuser may define the shape of the watch area by, for example, drawing theuser watch area on a map displayed on a display screen associated withthe user's user client device. In various embodiments, the system isadapted so that the user may define the shape of the watch area by, forexample: (1) specifying both a center of a circular watch area and thedesired radius of the watch area; (2) selecting various points thatdefine a polygon-shaped watch area; or (3) drawing the watch area on adisplay screen.

In certain embodiments, the system may be configured to allow the systemto automatically and dynamically determine an appropriate size and shapefor the watch area. For example, the system may be adapted todynamically modify the size and shape of the watch area based, forexample, on such factors as: (1) the population density of an area thatis within and/or adjacent the current watch area; (2) the number ofmessage postings within an area that is within and/or adjacent thecurrent watch area (either at a particular point in time, or over apredetermined period of time); and/or (3) any other suitable factor.

As a particular example, the system may automatically increase theradius of a circular roaming watch area in response to the watch areamoving from a relatively densely populated area to a relatively sparselypopulated area. Similarly, the system may automatically decrease theradius of a circular roaming watch area in response to the watch areamoving from a relatively sparsely populated area to a relatively denselypopulated area.

As another example, the system may automatically increase the radius ofa circular roaming watch area in response to the number of messagepostings within the watch area decreasing below a pre-defined number ofmessages. For example, in response to determining that a number ofcurrent message postings within the watch area is below a predeterminedthreshold number, the system may automatically expand the size of thewatch area until the watch area includes the desired number of messages.Similarly, the system may automatically decrease the radius of acircular roaming watch area in response to the number of messagepostings within the watch area increasing above the pre-defined numberof messages.

In other embodiments, the system may automatically change the generalshape of the watch area so that it captures a desired number of messagesand/or satisfies other pre-determined criteria. For example, the systemmay change the watch area from a generally circular shape to a generallyoval shape so that it includes and/or excludes certain message postings.

The system may also use the techniques described above to automaticallyadjust the watch area's size or shape in response to the number ofmessages posted during a particular time period: (A) being higher orlower than a particular threshold; or (B) changing by a predeterminedamount.

Watch Roulette Feature

In various embodiments, certain messages and/or message threads(“threads”) may be associated with a particular “channel” ofcommunication. This allows a user to further filter the types of treadsthat the system will automatically subscribe a particular user to basedon whether the threads are associated with a particular channel ofinterest. For example, in a particular embodiment, the user may specifythat they only wish to subscribe to threads that are posted on a“tennis” channel. In one example, the system would only subscribe theuser to threads that: (1) are specifically associated with the tennischannel; and (2) satisfy the geographical posting requirements discussedabove. This might allow a user, for example, to easily contact andcommunicate with other users who are in the user's watch area (e.g., asdefined, for example, as a circular area having a 2-mile radius centeredat the user's home) who are interested in playing tennis.

In particular embodiments:

-   -   The system server maintains a set of channel records with an id        and description, including a public channel.    -   Users are granted access to specific channels. By default, users        only have access to the public channel.    -   When a user creates a new thread, the user client allows the        user to specify which channel the thread should be associated        with.    -   The channel for all messages within a thread is determined by        the root (first) message for that thread.    -   When a user client requests thread data from the system server,        the system server restricts the returned thread data to those        that belong to channels that the user has access to.

Watch Roulette Feature

In various embodiments, the system is adapted to allow users to explore(e.g., in a substantially random manner) message threads that are notassociated with any of the user's normal watch areas. In particularimplementations, in response to receiving a request from a user toexecute the watch roulette feature, the system randomly identifies athread of messages and displays the thread to a user. In particularembodiments, the user may specify predetermined criteria that the threadmust satisfy. For example, the user may specify that any thread to bedisplayed must: (1) include a message that is associated with a locationthat is within a predetermined distance (e.g., 20 miles) of a specifiedlocation (e.g., the user's current location or another location); and(2) have been updated within a specified period of time (e.g., withinthe last hour). In particular embodiments, the system is adapted toallow the user to repeatedly execute the watch roulette feature in orderto quickly survey the landscape of conversations that are occurringwithin a particular area within a particular time period.

In certain embodiments, the system is set up to prohibit users fromreplying to threads that are viewed using the watch roulette feature,unless the thread would have otherwise been visible to the user throughone of the user's other watches. However, in other embodiments, usersmay reply to any threads displayed using this feature.

Automated Message Posting

Although messages are described elsewhere in this disclosure as beingoriginated by a human user (e.g., by a person typing a message on theircell phone or other portable or non-portable electronic device), itshould be understood that, in other embodiments, messages may beoriginated automatically by a computer system. For example, messages maybe posted by a client computer that has access to certain events and thelocations of those events. In particular embodiments, the clientcomputer may be adapted so that, in response to the occurrence of aparticular event, the client computer automatically posts informationregarding the particular event on a map at a specific post location thatcorresponds to the event.

As a specific example, a central home alarm monitoring system may beadapted to monitor multiple homes for the presence of one or more alarmcodes that may be automatically generated, for example, when a door orwindow within the home is opened while the home's alarm system isactivated. In a particular embodiment, the home alarm monitoring systemis adapted to post an appropriate alert message at a post location thatcorresponds to the position of the home on a map. This may serve toalert users, who are monitoring a watch area that includes the home,that the home's burglar alarm has been triggered. This may allow thosein the immediate area to seek, or otherwise provide, appropriateassistance.

It should be understood that this type of automated message postingfunctionality may be used in a variety of contexts to automaticallyalert users of the occurrence and location of a particular event. Otherexamples of such events include inclement weather activity (e.g.,tornados, hail or lightning), crime bulletins, and other types ofevents.

General Comments

The following comments apply to certain (but not necessarily all)specific embodiments of systems described in this document. It should beunderstood that some embodiments may include some of the features belowand not others. Other embodiments may not include any of these features.Listed features:

-   -   A user with multiple user client devices can have multiple user        client roaming watch areas.    -   For each user client device, a user may choose whether the user        client creates and maintains a roaming watch area for that        particular user client.    -   The user client will keep user client roaming watch area data on        the system server in sync.    -   The user client will continuously monitor the user client device        GPS location and update the corresponding user client roaming        watch area on the system server.    -   Although user client roaming watch areas can be constantly        changing, user client roaming watch areas are, in various        embodiments, treated the same as static user watch areas by the        system server.    -   A user client roaming watch area represents a standing request        to receive notifications for any updates to message threads that        touch that area.    -   In various embodiments, user clients stay in sync with the        system server both in terms of configuration data (e.g., user        watches) and message data (the various messages that the user is        interested in). As shown, for example, in FIGS. 1-4, user        clients may, for example, show users a current snapshot of the        data the user has expressed interest in.    -   In particular embodiments, user interest in a particular thread        or post location is deterministic (e.g., completely        deterministic)—the system knows which users have interest in a        particular thread and which users don't. The system enforces a        consistent set of rules (that users can understand and depend        on) to determine interest.    -   A single user can be associated with multiple clients. For        example, a single user may be associated with client        applications on the user's iPhone, iPad, and laptop computer.    -   In various embodiments, notification data gets “pushed” from the        system server to user clients in following manner:        -   When the system server detects that a new message within a            thread is of interest to a user, the system sends a            notification to each user client for the user (e.g., user            clients on the user's iPhone, iPad, and laptop computer).            -   The notification contains enough information to alert                the user immediately that new data is pending and what                the identifier of the new thread is.            -   When the new thread data is actually retrieved from the                system server can vary. For example:                -   If the user client is already running, the user                    client will retrieve the data immediately.                -   If not, the user has been alerted and will see the                    updates next time they run the user client.            -   In various embodiments, user clients sync with the                system server every time they start or detect updates.

Specific Examples

Various steps that are executed during of the operation of a systemaccording to a particular embodiment are described below with referenceto FIGS. 5-9. In this example:

-   -   User A is associated with watch area A1 and user client A1    -   User B is associated with watch area B1 and user client B1    -   User C is associated with watch area C1 and user client C1    -   User D is associated with watch area D1 and user client D1    -   User E is associated with watch area E1 and user client E1    -   User F is associated with watch area F1 and user client F1    -   User G is associated with roaming watch area G1, user client G1,        and client device G1-device. (User client device G1-device is        GPS-capable and user G has enabled roaming as watch area        G1-roaming).

Step 1: A first thread T1 is created and posted as follows:

-   -   (A) User A posts a new message M1 and specifies a post location        PL1 for this message. (See FIG. 5). User A may specify the post        location either manually (e.g., by specifying a location on a        map displayed on User A's user client device or by specifying        that User A's current location should be used as PL1). Message        M1 is not a reply so it becomes the first message in thread T1.    -   (B) The system establishes a subscription A-T1 which will cause        the system to automatically send user A any updates to thread T1        (which may include, for example, any new messages that are        posted to this message thread).    -   (C) PL1 is within user B's watch area B1. Because of this, the        system notifies user B's user client B1 that thread T1 is of        interest to user B.    -   (D) User B's user client B1 requests thread T1 data from the        system server and presents thread T1 to user B (e.g., by        displaying the text of the thread T1 on the user client device        on which user B's user client B1 is installed).    -   (E) The system establishes a subscription to thread T1        (subscription B-T1) for user B.    -   (F) The system determines PL1 is not within watch areas for        users C-G, and therefor does not take any further action in        regard to notifying users C-G of this thread.

Step 2: a first reply to thread T1 is created and posted as follows:

-   -   (A) User B reads thread T1 on user client B1.    -   (B) User B replies to thread T1 with new message M2 and        specifies post location PL2 for message M2.    -   (C) In response to subscription A-T1, the system notifies user        client A1 that a new message (message M2) has been added to        thread T1.    -   (D) The system determines that PL2 is within user C's watch area        C1 and notifies user client C1 that thread T1 is of interest.    -   (E) The system establishes a subscription to thread T1        (subscription C-T1) for user C.    -   (F) The system determines that PL2 is not within watch areas for        users D-G, and therefor does not take any further action in        regard to notifying users D-G of this thread.

Step 3: A second reply to thread T1 is created and posted as follows:

-   -   (A) User C reads updated thread T1 on user client C1.    -   (B) User C replies to thread T1 with a new message M3 and        specifies post location PL3 for message M3.    -   (C) In response to subscriptions A-T1 and B-T1, the system        notifies user clients A1 and B1 that a new message (message M3)        has been added to thread T1.    -   (D) The system determines that PL3 is within both user D's watch        area D1 and user E's watch area E1, and notifies user clients D1        and E1 that thread T1 is of interest.    -   (E) The system establishes subscriptions to thread T1        (subscriptions D-T1 and E-T1, respectively) for users D and E.    -   (F) The system determines that PL3 is not within a watch areas        for users F and G, and therefor does not take any further action        in regard to notifying users F and G of this thread.

Step 4: A third reply to thread T1 is created and posted as follows:

-   -   (A) User A reads updated thread T1 on user client A1.    -   (B) User A replies to thread T1 with a new message M4 and        specifies post location PL4 for message M4 where PL4 is not        equal to PL1.    -   (C) In response to subscriptions B-T1 and E-T1, the system        notifies user clients B1-E1 that a new message (message M4) has        been added to thread T1.    -   (D) The system determines that PL4 is within user F's watch F1,        and notifies user client F1 that thread T1 is of interest.    -   (E) The system establishes a subscription to thread T1        (subscription F-T1) for user F.

Step 5: System handles a roaming watch area as a third reply to threadT1 is created and posted as follows:

Note:

User G watch area G1 is not touched by any of the locations of themessages above, PL1 thru PL4.

-   -   (A) User G is initially at roaming location RL1 (See FIG. 5).    -   (B) User client G1 updates user client roaming watch G1 roaming        data on the system server with location RL1.    -   (C) User G moves to location RL2. (See FIG. 6).    -   (D) User client G1 updates user client roaming watch G1 roaming        data on the system server with location RL2.    -   (E) User G moves to location RL3. (See FIG. 7).    -   (F) User client G1 updates user client roaming watch G1-roaming        data on the system server with location RL3. Location RL3 is        near user B.    -   (G) A fourth reply to thread T1 is created.    -   (H) User B reads updated thread T1 on client B1.    -   (I) User B replies to thread T1 with new message M5 at post        location PL5.    -   (J) In response to subscriptions A-T1 and C-T1 thru F-T1, the        system notifies user clients A1 and C1 thru F1 that a new        message (message M5) has been added to thread T1.    -   (K) The system determines that PL5 is within user watch        G1-roaming, which is currently centered on location RL3.    -   (L) The system notifies user client G1 that thread T1 is of        interest.    -   (M) The system establishes a subscription to thread T1        (subscription G-T1) for user G.

Step 6: a fifth reply to thread T1 is created and posted as follows:

-   -   (A) User G reads updated thread T1 on user client G1.    -   (B) User G replies to thread T1 with a new message M6 and        specifies post location PL6 for message M6.    -   (C) In response to subscriptions A-T1-F-T1, the system notifies        user clients A1-F1 that a new message (message M6) has been        added to thread T1.    -   (D) User G moves to location RL4, which is far away from post        locations PL1 thru PL6.    -   (E) User client G1 updates user client roaming watch G1-roaming        data on the system server with location RL4. (See FIG. 8).

Step 7: A sixth reply to Thread T1 is created and posted as follows:

-   -   (A) User C reads updated thread T1 on user client C1.    -   (B) User C replies to thread T1 with a new message M7 and        specifies post location PL7 for message M7. (See FIG. 9).    -   (C) In response to subscriptions A-T1, B-T1, and D-T1 through        G-T1, the system notifies user clients A1, B1, and D-G that a        new message (message M7) has been added to thread T1.

Exemplary Technical Platforms

As will be appreciated by one skilled in the relevant field, in light ofthis disclosure, the present invention may be, for example, embodied asa computer system, a method, or a computer program product. Accordingly,various embodiments may take the form of an entirely hardwareembodiment, an entirely software embodiment, or an embodiment combiningsoftware and hardware aspects. Furthermore, particular embodiments maytake the form of a computer program product stored on acomputer-readable storage medium having computer-readable instructions(e.g., software) embodied in the storage medium. Various embodiments maytake the form of web-implemented computer software. Any suitablecomputer-readable storage medium may be utilized including, for example,hard disks, compact disks, DVDs, optical storage devices, and/ormagnetic storage devices.

Various embodiments are described below with reference to block diagramsand flowchart illustrations of methods, apparatuses (e.g., systems) andcomputer program products. It should be understood that each block ofthe block diagrams and flowchart illustrations, and combinations ofblocks in the block diagrams and flowchart illustrations, respectively,can be implemented by a computer executing computer programinstructions. These computer program instructions may be loaded onto ageneral purpose computer, special purpose computer, or otherprogrammable data processing apparatus to produce a machine, such thatthe instructions which execute on the computer or other programmabledata processing apparatus create means for implementing the functionsspecified in the flowchart block or blocks.

These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner such that the instructions stored in the computer-readable memoryproduce an article of manufacture that is configured for implementingthe function specified in the flowchart block or blocks. The computerprogram instructions may also be loaded onto a computer or otherprogrammable data processing apparatus to cause a series of operationalsteps to be performed on the computer or other programmable apparatus toproduce a computer implemented process such that the instructions thatexecute on the computer or other programmable apparatus provide stepsfor implementing the functions specified in the flowchart block orblocks.

Accordingly, blocks of the block diagrams and flowchart illustrationssupport combinations of mechanisms for performing the specifiedfunctions, combinations of steps for performing the specified functions,and program instructions for performing the specified functions. Itshould also be understood that each block of the block diagrams andflowchart illustrations, and combinations of blocks in the blockdiagrams and flowchart illustrations, can be implemented by specialpurpose hardware-based computer systems that perform the specifiedfunctions or steps, or combinations of special purpose hardware andother hardware executing appropriate computer instructions.

Exemplary System Architecture

FIG. 10 shows an Electronic Messaging System 10 according to aparticular embodiment. As may be understood from this figure, theElectronic Messaging System 10 includes a System Server 50, one or morecomputer networks 20, and at least one User Client Device 14. The one ormore computer networks 20 facilitate communication between the UserClient Device 14 and the System Server 50. These one or more computernetworks 20 may include any of a variety of types of computer networkssuch as the Internet, a private intranet, a public switch telephonenetwork (PSTN), or any other type of network known in the art. Incertain variations of the embodiment shown in FIG. 1, both thecommunication link between the User Client Device 14 and the SystemServer 50 are implemented via the Internet using Internet protocol (IP).

FIG. 2 shows a block diagram of an exemplary embodiment of the SystemServer 50 of FIG. 1. The System Server 50 includes a processor 60 thatcommunicates with other elements within the System Server 50 via asystem interface or bus 61. Also included in the System Server 50 is adisplay device/input device 64 for receiving and displaying data. Thisdisplay device/input device 64 may be, for example, a keyboard, voicerecognition, or pointing device that is used in combination with amonitor. The System Server 50 further includes memory 66, whichpreferably includes both read only memory (ROM) 65 and random accessmemory (RAM) 67. The server's ROM 65 is used to store a basicinput/output system 68 (BIOS) that contains the basic routines that helpto transfer information between elements within the System Server 50.

In addition, the System Server 50 includes at least one storage device63, such as a hard disk drive, a floppy disk drive, a CD Rom drive, oroptical disk drive, for storing information on various computer-readablemedia, such as a hard disk, a removable magnetic disk, or a CD-ROM disk.As will be appreciated by one of ordinary skill in the art, each ofthese storage devices 63 is connected to the system bus 61 by anappropriate interface. The storage devices 63 and their associatedcomputer-readable media provide nonvolatile storage for the SystemServer 50. It is important to note that the computer-readable mediadescribed above could be replaced by any other type of computer-readablemedia known in the art. Such media include, for example, magneticcassettes, flash memory cards, digital video disks, and Bernoullicartridges.

A number of program modules may be stored by the various storage devicesand within RAM 67. Such program modules include an operating system 80,and a Messaging Module 100. The Messaging Module 100 control certainaspects of the operation of the System Server 50 with the assistance ofthe processor 60 and an operating system 80.

Also located within the System Server 50 is a network interface 74 forinterfacing and communicating with other elements of a computer network.It will be appreciated by one of ordinary skill in the art that one ormore of the System Server 50 components may be located geographicallyremotely from other System Server 50 components. Furthermore, one ormore of the components may be combined, and additional componentsperforming functions described herein may be included in the SystemServer 50.

Alternative Embodiments Shared Watch Areas

In various embodiments, the system is configured to define one or moreshared watch areas which may, for example, not be tied to a particularuser. For example, the system may be configured to define a watch areaor enable a user to define a watch area for a park, (e.g., such ascentral park in New York City); a particular landmark; a path or trail(e.g., such as the Appalachian Trail or other hiking trail, aneighborhood, or any other suitable region). In various embodiments, ashared watch area may be defined by an area bounded by one or moreelectronic markers (e.g., one or more iBeacons). In particularembodiments, the watch area may be defined by a shape of the area andmay, for example, include surrounding areas. In various embodiments, thesystem is configured to associate a plurality of users with the sharedwatch area (e.g., residents of the particular neighborhood, etc.).

In various embodiments, the system is configured to enable users toelect to substantially automatically subscribe to a particular sharedwatch area based at least in part on a user's proximity to theparticular shared watch area. In particular embodiments, the system isconfigured to determine that a user is located in a shared watch area(e.g., based on a GPS position of the user determined from a mobiledevice associated with the user), and to substantially automaticallysubscribe the user to the shared watch area in response to making thatdetermination (e.g., to add the shared watch area to the user's existingwatch area). In such embodiments, the systems may be configured tosubstantially automatically unsubscribe the user from the particularshared watch area in response to determining that the user is no longerlocated within (e.g., or near) the particular shared watch area. Instill other embodiments, the system may be configured to subscribe auser to a particular shared watch area at least partially in response toa determination by the system that a roaming watch area associated withthe user at least partially overlaps with the particular shared watcharea.

Proximity Message Notification

In various embodiments, the system is configured to notify a clientdevice associated with a first user that a new thread has been posted ormay be of interest to the first user via a client device associated witha second user. In particular embodiments, the system may be configuredto notify the first user via the second user's client device in responseto determining that the client device associated with the first user isproximate the client device associated with the second user (e.g., theclient, devices are within a particular distance of one another). Invarious embodiments, the system may determine any suitable proximitysuch as, for example, within 100 feet, within 250 feet, within 50 yards,or any other suitable proximity. In some embodiments, the system isconfigured to transmit the notification substantially directly betweenclient devices using Bluetooth, Low Energy Bluetooth, Near FieldCommunication, or any other suitable technique.

Proximity Message Relay

In various embodiments, the system may be configured to relay threadsand/or messages such as the proximity messages discussed immediatelyabove. For example, the system may be configured to relay a proximitymessage from the client device associated with the first user describedabove that has received the proximity message to one or more clientdevices associated with one or more third users. In various embodiments,the one or more third users may be proximate the first user (e.g.,within a particular distance of the first user), but not proximate thesecond user described above. In various embodiments, this functionalitymay enable one or more threads or messages to propagate from aparticular location or user to nearby users to whom the message orthread may be of interest. In a particular example, if a robbery occursat a particular street corner, users near the corner may receive or posta message regarding the robbery, which would then be transmitted (e.g.,via Bluetooth, near field communications, etc.) to one or more nearbyusers' client devices.

Traveling Thread

In various embodiments, threads and messages may be associated with aparticularly shaped area rather than a specific GPS location. Forexample, a thread related to a particular crime may be associated with acircular area having a radius of one mile from the location of thecommission of the crime. In such embodiments, a user having a watch areathat at least partially intersects (e.g., overlaps) the circular areamay receive and/or subscribe to the thread even if the actual locationof the crime is not within the user's watch area.

Social Endorsement

In various embodiments the system is configured to utilize socialnetworking data associated with a user when determining whether tosubscribe that user to a particular thread. The system may beconfigured, for example, to determine social networking data associatedwith a user such as the user's friends, connections, followers, follows,contacts, interactions, etc. on one or more social networks (e.g.,Facebook, Twitter, LinkedIn, Instagram, etc.). In particularembodiments, the system is configured to subscribe a user to aparticular thread when that thread falls within one or more of theuser's watch areas and the thread contains one or more messages that,for example, have been posted, replied to, commented on, liked orotherwise interacted with by one or more persons to whom the user isconnected via one or more social networks.

CONCLUSION

Many modifications and other embodiments of the invention will come tomind to one skilled in the art to which this invention pertains havingthe benefit of the teachings presented in the foregoing descriptions andthe associated drawings. For example, as will be understood by oneskilled in the relevant field in light of this disclosure, the inventionmay take form in a variety of different mechanical and operationalconfigurations. Therefore, it is to be understood that the invention isnot to be limited to the specific embodiments disclosed and thatmodifications and other embodiments are intended to be included withinthe scope of the appended claims. Although specific terms are employedherein, they are used in a generic and descriptive sense only and notfor the purposes of limitation.

I claim:
 1. A computer system for facilitating communications betweenusers, said computer system comprising: at least one processor, whereinsaid computer system is configured for: (A) receiving, from a firstuser, one or more user watch area attributes; (B) using said one or moreuser watch area attributes to define a watch area; (C) receiving, from asecond user, a message associated with a particular geographicallocation, wherein said second user has indicated that said messageshould be associated with said particular geographical location; (D)determining whether said particular geographical location is locatedwithin said user watch area; (E) at least partially in response todetermining that said particular geographical location is located withinsaid user watch area, subscribing said first user to a thread ofmessages that includes said message; and (F) dynamically adjusting asize of said user watch area based, at least in part, on a number ofmessage postings within said user watch area.
 2. The computer system ofclaim 1, wherein said system is further configured for: (G) determiningwhether said first user has entered a shared watch area; and (H) atleast partially in response to determining that said first user hasentered said shared watch area, substantially automatically adding saidshared watch area to said user watch area.
 3. The computer system ofclaim 2, wherein said system is further configured for: (I) determiningwhether said first user has left said shared watch area; (J) at leastpartially in response to determining that said first use has left saidshared watch area, substantially automatically removing said sharedwatch area from said user watch area.
 4. The computer system of claim 2,wherein said user watch area is a shared user watch area associated witha particular location.
 5. The computer system of claim 4, wherein saidparticular location is selected from a group consisting of: i. aparticular landmark; ii. a particular neighborhood; and iii. aparticular pathway.
 6. The computer system of claim 1, wherein: saidsystem is further configured for receiving social networking dataassociated with said first user; and said subscribing said first user tosaid thread of messages that includes said message is based at least inpart on said social networking data.
 7. The computer system of claim 6,wherein said system is further configured for: determining, based atleast in part on said social networking data, whether said second useris associated with said first user; and at least partially in responseto determining that said second user is associated with said first user,subscribing said first user to said thread of messages that includessaid message.
 8. The computer system of claim 1, wherein: saidgeographic location is a particular area; and determining whether saidparticular geographical location is located within said user watch areacomprises determining whether said particular area at least partiallyoverlaps said user watch area.
 9. The computer system of claim 8,wherein said particular area is a substantially circular areasubstantially centered on a location associated with said message. 10.The computer system of claim 1, wherein said computer system is furtherconfigured for: determining a distance between said first user and saidsecond user; and at least partially in response to determine that saiddistance is less than a particular distance, notifying said first userof said message by transmitting said notification substantially directlyfrom a client device associated with said second user to a client deviceassociated with said first user.
 11. The computer system of claim 10,wherein transmitting said notification comprises transmitting saidnotification via a protocol selected from a group consisting of: i.Bluetooth; ii. Low Energy Bluetooth; and iii. Near Field Communication.12. A non-transitory computer-readable medium storingcomputer-executable instructions for: (A) receiving, from a first user,one or more user watch area attributes; (B) using said one or more userwatch area attributes to define a watch area; (C) determining whethersaid first user has entered a shared watch area; (D) at least partiallyin response to determining that said first user has entered said sharedwatch area, substantially automatically adding said shared watch area tosaid user watch area; (E) receiving, from a second user, a messageassociated with a particular geographical location, wherein said seconduser has indicated that said message should be associated with saidparticular geographical location; (F) determining whether saidparticular geographical location is located within said user watch area;(G) at least partially in response to determining that said particulargeographical location is located within said user watch area,subscribing said first user to a thread of messages that includes saidmessage; and (H) decreasing a size of said user watch area in responseto determining that a number of message postings within said user watcharea is more than a predetermined threshold value.
 13. Thenon-transitory computer-readable medium of claim 12, wherein said sharedwatch area is selected from a group consisting of: i. a particularneighborhood; ii a particular pathway; iii. a particular park; iv. anarea bounded by one or more electronic markers; and v. a particularlandmark.
 14. The non-transitory computer-readable medium of claim 12,wherein: said geographic location is a particular area; and determiningwhether said particular geographical location is located within saiduser watch area comprises determining whether said particular are atleast partially overlaps said user watch area.
 15. The non-transitorycomputer-readable medium of claim 14, wherein said particular area is asubstantially circular area substantially centered on a locationassociated with said message.
 16. The non-transitory computer-readablemedium of claim 12, further storing computer-executable instructionsfor: determining a distance between said first user and said seconduser; and at least partially in response to determine that said distanceis less than a particular distance, notifying said first user of saidmessage by transmitting said notification substantially directly from aclient device associated with said second user to a client deviceassociated with said first user.
 17. The non-transitorycomputer-readable medium of claim 16, wherein transmitting saidnotification comprises transmitting said notification via a protocolselected from a group consisting of: i. Bluetooth; ii. Low EnergyBluetooth; and iii. Near Field Communication.
 18. A computer system forfacilitating communications between users, said computer systemcomprising: at least one processor, wherein said computer system isconfigured for: (A) receiving, from a first user, one or more user watcharea attributes; (B) using said one or more user watch area attributesto define a watch area; (C) determining whether said first user hasentered a shared watch area; (D) at least partially in response todetermining that said first user has entered said shared watch area,substantially automatically adding said shared watch area to said userwatch area; (E) receiving, from a second user, a message associated witha particular geographical location, wherein said second user hasindicated that said message should be associated with said particulargeographical location; (F) determining whether said particulargeographical location is located within said user watch area; (G) atleast partially in response to determining that said particulargeographical location is located within said user watch area,subscribing said first user to a thread of messages that includes saidmessage; and (H) dynamically adjusting a size of said user watch areabased, at least in part, on a population density associated with saiduser watch area.
 19. The computer system of claim 18, wherein: saidsystem is further configured for receiving social networking dataassociated with said first user; and said subscribing said first user tosaid thread of messages that includes said message is based at least inpart on said social networking data.
 20. The computer system of claim19, wherein said system is further configured for: determining, based atleast in part on said social networking data, whether said second useris associated with said first user; and at least partially in responseto determining that said second user is associated with said first user,subscribing said first user to said thread of messages that includessaid message.